/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package BL;

import BE.BEContacto;
import BE.BELineaMovimiento;
import BE.BEMovimiento;
import BE.BEMotivomovimiento;
import BE.BEPallet;
import DA.DAMovimiento;
import java.util.ArrayList;
import java.util.List;
import javax.swing.JComboBox;
import javax.swing.table.DefaultTableModel;
import javax.swing.*;
import java.sql.ResultSet;
import java.util.Date;

/**
 *
 * @author Cristian
 */
public class BLmovimiento {

    public void llenarCombo(JComboBox cmbTipoMovimiento){
         BLMotivomovimiento blTipoMov = new BLMotivomovimiento();
        List<BEMotivomovimiento> tipos = new ArrayList<BEMotivomovimiento>();

        tipos = blTipoMov.buscarTipoMov2(null, 0);


            cmbTipoMovimiento.addItem(new BLCombo(0,"SELECCIONAR"));

        if (tipos != null)
            for (int i=0;i<tipos.size();i++)
                cmbTipoMovimiento.addItem(new BLCombo(tipos.get(i).getIdmovimiento(),
                                     tipos.get(i).getNombre()));

    }

    public void agregarTraslado(BEMovimiento objMov, int idmotivo){
        DAMovimiento daMov = new DAMovimiento();
        daMov.agregarTraslado(objMov, idmotivo);
    }

    public void generarMov(List<BEPallet> listaPallet,BEContacto objcontacto){
        
        BLmovimiento blmov = new BLmovimiento();
                
        for (int i=0;i<listaPallet.size();i++){
            
            List <BELineaMovimiento> lineas=new ArrayList<BELineaMovimiento>();
            BEPallet objpallet=new BEPallet();
            BELineaMovimiento linea=new BELineaMovimiento();
            objpallet=listaPallet.get(i);
            objpallet.setEstado("DESPACHADO");
            
            linea.setPallet(objpallet);
            linea.setCantidad(objpallet.getCantidad()*(-1));
            lineas.add(linea);
            
            BEMovimiento objMovimiento=new BEMovimiento();
            objMovimiento.setContacto(objcontacto);
            objMovimiento.setDetalleMovimiento(lineas);
            objMovimiento.setEstado("1");
            java.util.Date fecha = new Date();
            objMovimiento.setFecha(fecha);
            objMovimiento.setDescripcion("Despacho");
            objMovimiento.setTipomov(2);
            objMovimiento.setOrigen(objpallet.getPosicionxrack());

            blmov.agregarDespacho(objMovimiento);
        }   

    }


    public void agregarDespacho (BEMovimiento objMovimiento){
        DAMovimiento daMov = new DAMovimiento();
        daMov.agregarDespacho(objMovimiento);
    }
    
    public void agregarInternamiento(BEMovimiento objMovimiento){
        DAMovimiento daMov = new DAMovimiento();
        daMov.agregarInternamiento(objMovimiento);
    }
      
    public void cargarMovimientos(JTable tblDatos){
        DAMovimiento daMov = new DAMovimiento();
        ResultSet rs = null;

        rs = daMov.cargarMovimientos(); //1 para buscar por parametros de busqueda
        this.llenaTabla(rs, tblDatos);
    }
      
    public void llenaTabla(ResultSet rs, JTable tblDatos){
        BLModelo modelo = new BLModelo();
        tblDatos.setModel(modelo);

        modelo.addColumn("IDMovimiento");
        modelo.addColumn("Tipo");
        modelo.addColumn("Estado");
        modelo.addColumn("FechaRegistro");
        //Ocultar columna ID
//        tblDatos.getColumnModel().getColumn(0).setMaxWidth(0);
//        tblDatos.getColumnModel().getColumn(0).setMinWidth(0);
//        tblDatos.getTableHeader().getColumnModel().getColumn(0).setMaxWidth(0);
//        tblDatos.getTableHeader().getColumnModel().getColumn(0).setMinWidth(0);

        try
        {
            while (rs.next())
            {
                Object [] fila = new Object[7];
                fila[0] = rs.getObject("idmovimiento");
                fila[1] = rs.getObject("tipomovimiento");               
                fila[2] = rs.getObject("estado");
                fila[3] = rs.getObject("fecha");

                if (fila[2].toString().equals("1"))
                    fila[2] = "ACTIVO";
                else 
                    fila[2] = "INACTIVO";
                if (fila[1].toString().equals("0"))
                    fila[1] = "Internamiento";
                else if (fila[1].toString().equals("1"))
                    fila[1] = "Traslado";
                else fila[1] = "Despacho";
                
                modelo.addRow(fila);
            }
        } catch (Exception e) {
            JOptionPane.showMessageDialog(null,"Error al llenar la tabla",
                                          "Error",JOptionPane.ERROR_MESSAGE);
        }
      }

}
